package com.front.web.member;

import com.alibaba.fastjson.JSON;
import com.bootdo.common.redisUtils.JedisUtils;
import com.bootdo.common.utils.R;
import com.bootdo.slideshow.domain.CommonsSlideshow;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.*;

@RestController
@RequestMapping("/f/shequ/SlideshowController/")
public class SlideshowController extends MemberSuperController{


    /**
     * 获取轮播图   每次展示6个
     * @return
     */
    @RequestMapping("getSlideShowList")
    public R getSlideshowList(){

        String jsonLittleList=null;//小轮播图 json字符串
        String jsonBigList=null;//大轮播图 json字符串

        if(!JedisUtils.exists("jsonLunbotop")){//查询缓存
            HashMap<String, Object> param = new HashMap<>();
            param.put("isShow",1);
            param.put("isDel","0");
            //  param.put("resourceId",1);//轮播类型  1 商品 2分类
            param.put("resourceId",1);//轮播位置  1大轮播  2小轮播
            List<CommonsSlideshow> bigImgList = commonsSlideshowService.list(param);
            param.put("resourceId",2);//轮播位置  1大轮播  2小轮播
            List<CommonsSlideshow> littleImgList = commonsSlideshowService.list(param);
            JedisUtils.setObject("jsonLunbotop",bigImgList.get(0),60*60*24);
            bigImgList.remove(0);
            String jsonBig = JSON.toJSONString(bigImgList);//转换为 json字符串
            String jsonLittle = JSON.toJSONString(littleImgList);//转换为 json字符串
            JedisUtils.del("jsonLunboLittle");//先删除缓存
            JedisUtils.del("jsonLunboBig");
            JedisUtils.set("jsonLunboLittle",jsonLittle,60*60*24);
            JedisUtils.set("jsonLunboBig",jsonBig,60*60*24);

        }
            ArrayList<CommonsSlideshow> big = new ArrayList<>();//临时 集合对象----存贮big大轮播图
            ArrayList<CommonsSlideshow> little = new ArrayList<>();//临时 集合对象----存贮little小轮播图

            Random rand=new Random();//随机数
            jsonLittleList = JedisUtils.get("jsonLunboLittle");
            jsonBigList = JedisUtils.get("jsonLunboBig");

            CommonsSlideshow commonsSlideshowsTop =(CommonsSlideshow) JedisUtils.getObject("jsonLunbotop");//转换为 轮播图对象  最高排序数  每次会一直出现在首页
            List<CommonsSlideshow> commonsSlideshowsLittle = JSON.parseArray(jsonLittleList, CommonsSlideshow.class);//转换为 小轮播图集合
            List<CommonsSlideshow> commonsSlideshowsBig = JSON.parseArray(jsonBigList, CommonsSlideshow.class);//转换为 大轮播图集合
            Collections.shuffle(commonsSlideshowsBig,rand);
            bianli(commonsSlideshowsLittle,1,little);
            bianli(commonsSlideshowsBig,5,big);
            big.add(0,commonsSlideshowsTop);//将top  放到首位轮播图不变
        return R.ok().put("big",big).put("little",little);

    }

    public void bianli(List<CommonsSlideshow> list ,int conut, List<CommonsSlideshow> newList){
        int temp=0;//临时值
        for(CommonsSlideshow commonsSlideshow :list){
            if(temp==conut){
                break;
            }
            newList.add(commonsSlideshow);
            temp++;
        }
    }
}
